﻿using SIIE_ERP.Codigo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Elysium.Demo.Ventas.Transacciones
{
    /// <summary>
    /// Interaction logic for CorreoEnviaClientes.xaml
    /// </summary>
    public partial class CorreoEnviaClientes : UserControl
    {
        private UsuarioActivo _sesion;
        public CorreoEnviaClientes(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;
            CargarDatos();
        }
        ////////////////////////////////////////////////////////////////////////////
        //  PROPIEDADES DE NAVEGACION
        public string Texto { get { return _texto; } }
        public TabControl TabControlPadre { get { return _tabControlPadre; } }
        public TabItem TabItemPadre { get { return _tabItemPadre; } }

        private string _texto;
        private TabControl _tabControlPadre;
        private TabItem _tabItemPadre;

        public void setParametros(string Texto, ref TabControl tabControl, ref TabItem tabItem)
        {
            this._texto = Texto; this._tabControlPadre = tabControl; this._tabItemPadre = tabItem;
        }
        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {
            (this.Parent as ScrollViewer).Content = null;
        }


        // FIN DE PROPIEDADES DE NAVEGACION
        ///////////////////////////////////////////////////////////////////////////

        private void CargarDatos()
        {
        }
        private void ButtonPDF_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();

            dlg.DefaultExt = ".pdf";
            // dlg.Filter = "Excel Files (*.xlsx)|*.xlsx";
            dlg.Filter = "Pdf Files|*.pdf";
            // Muestra el Open File Dialog
            Nullable<bool> result = dlg.ShowDialog();

            // Obtiene el archivo
            if (result == true)
            {
                TextBox_PDF.Text = dlg.FileName;
            }
            else
            {
                MessageBox.Show("Se canceló la Selección.");
            }
        }

        private void ButtonXML_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();

            dlg.DefaultExt = ".xml";
            dlg.Filter = "XML files (*.xml)|*.xml";

            // Muestra el Open File Dialog
            Nullable<bool> result = dlg.ShowDialog();

            // Obtiene el archivo
            if (result == true)
            {
                TextBox_XML.Text = dlg.FileName;
            }
            else
            {
                MessageBox.Show("Se canceló la Selección.");
            }
        }

        private void Button_EnviarCorreo(object sender, RoutedEventArgs e)
        {
            try
            {

                /*-------------------------MENSAJE DE CORREO----------------------*/

                //Creamos un nuevo Objeto de mensaje
                System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

                //Direccion de correo electronico a la que queremos enviar el mensaje
                mmsg.To.Add("navadicarlos@hotmail.com");

                //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

                //Asunto
                mmsg.Subject = "Asunto del correo";
                mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

                //Direccion de correo electronico que queremos que reciba una copia del mensaje
             //   mmsg.Bcc.Add("destinatariocopia@servidordominio.com"); //Opcional

                //Cuerpo del Mensaje
                mmsg.Body = "Texto del contenio del mensaje de correo";
                mmsg.BodyEncoding = System.Text.Encoding.UTF8;
                mmsg.IsBodyHtml = false; //Si no queremos que se envíe como HTML

                //Correo electronico desde la que enviamos el mensaje
                mmsg.From = new System.Net.Mail.MailAddress("carlosnavadiaz@gmail.com");


                /*-------------------------CLIENTE DE CORREO----------------------*/

                //Creamos un objeto de cliente de correo
                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                //Hay que crear las credenciales del correo emisor
                cliente.Credentials =
                    new System.Net.NetworkCredential("carlosnavadiaz@gmail.com", "@guacate11");

                //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

                cliente.Port = 587;
                cliente.EnableSsl = true;

                cliente.Host = "smtp.gmail.com"; //Para Gmail "smtp.gmail.com";

                cliente.Send(mmsg);
                //ENVIA EL CORREO DE ERROR
                //SmtpClient mySmtpClient = new SmtpClient("smtp.uservers.net");
                //MailMessage myMessage = new MailMessage();
                //MailAddress fromAdd = new MailAddress(TextBox_Correo.Text);

                //myMessage.Subject = TextBox_Asunto.Text;
                //myMessage.IsBodyHtml = true;

                //myMessage.Body = "<br><br><br><br><br>" + "Hola Correo";

                //myMessage.From = fromAdd;
                //myMessage.To.Add(TextBox_CorreoCliente.Text);

                //mySmtpClient.Port = 587;
                //mySmtpClient.Credentials = new NetworkCredential(TextBox_Correo.Text, TextBox_Contraseña.Password.ToString());
                //mySmtpClient.Send(myMessage);
            }
            catch (Exception)
            {

                throw;
            }
        }
    }
}
